package org.jsola.hr.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_BATCH_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_BATCH_STATUS;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_BATCH_TRANS_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_BIZ_SCENE;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_FAIL_AMOUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_FAIL_COUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_ORDER_TITLE;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_PAYER_BOOK_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_PAYER_EXT_INFO;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_PAYER_USER_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_PRODUCT_CODE;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_REMARK;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_SUCCESS_AMOUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_SUCCESS_COUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_TOTAL_AMOUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.E_TOTAL_ITEM_COUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_BATCH_ID_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_BATCH_STATUS_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_BATCH_TRANS_ID_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_BIZ_SCENE_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_FAIL_AMOUNT_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_FAIL_COUNT_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_ORDER_TITLE_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_PAYER_BOOK_ID_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_PAYER_EXT_INFO_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_PAYER_USER_ID_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_PRODUCT_CODE_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_REMARK_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_SUCCESS_AMOUNT_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_SUCCESS_COUNT_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_TOTAL_AMOUNT_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.M_TOTAL_ITEM_COUNT_MAX;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_BATCH_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_BATCH_STATUS;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_BATCH_TRANS_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_BIZ_SCENE;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_FAIL_AMOUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_FAIL_COUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_ORDER_TITLE;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_PAYER_BOOK_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_PAYER_EXT_INFO;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_PAYER_USER_ID;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_PRODUCT_CODE;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_REMARK;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_SUCCESS_AMOUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_SUCCESS_COUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_TOTAL_AMOUNT;
import static org.jsola.hr.example.TransferAccountsZfbSafetyBatchExample.N_TOTAL_ITEM_COUNT;

/**
 * 转账批次(支付宝安全发)
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "新增【转账批次(支付宝安全发)】的参数")
@Data
public class TransferAccountsZfbSafetyBatchAddDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_BATCH_ID, example = E_BATCH_ID)
    @Length(max = 32, message = M_BATCH_ID_MAX)
    private String batchId;

    @ApiModelProperty(notes = N_ORDER_TITLE, example = E_ORDER_TITLE)
    @Length(max = 64, message = M_ORDER_TITLE_MAX)
    private String orderTitle;

    @ApiModelProperty(notes = N_REMARK, example = E_REMARK)
    @Length(max = 256, message = M_REMARK_MAX)
    private String remark;

    @ApiModelProperty(notes = N_BATCH_TRANS_ID, example = E_BATCH_TRANS_ID)
    @Length(max = 100, message = M_BATCH_TRANS_ID_MAX)
    private String batchTransId;

    @ApiModelProperty(notes = N_PRODUCT_CODE, example = E_PRODUCT_CODE)
    @Length(max = 64, message = M_PRODUCT_CODE_MAX)
    private String productCode;

    @ApiModelProperty(notes = N_BIZ_SCENE, example = E_BIZ_SCENE)
    @Length(max = 64, message = M_BIZ_SCENE_MAX)
    private String bizScene;

    @ApiModelProperty(notes = N_PAYER_EXT_INFO, example = E_PAYER_EXT_INFO)
    @Length(max = 256, message = M_PAYER_EXT_INFO_MAX)
    private String payerExtInfo;

    @ApiModelProperty(notes = N_PAYER_BOOK_ID, example = E_PAYER_BOOK_ID)
    @Length(max = 20, message = M_PAYER_BOOK_ID_MAX)
    private String payerBookId;

    @ApiModelProperty(notes = N_PAYER_USER_ID, example = E_PAYER_USER_ID)
    @Length(max = 64, message = M_PAYER_USER_ID_MAX)
    private String payerUserId;

    @ApiModelProperty(notes = N_TOTAL_ITEM_COUNT, example = E_TOTAL_ITEM_COUNT)
    @Length(max = 5, message = M_TOTAL_ITEM_COUNT_MAX)
    private String totalItemCount;

    @ApiModelProperty(notes = N_SUCCESS_COUNT, example = E_SUCCESS_COUNT)
    @Length(max = 5, message = M_SUCCESS_COUNT_MAX)
    private String successCount;

    @ApiModelProperty(notes = N_FAIL_COUNT, example = E_FAIL_COUNT)
    @Length(max = 5, message = M_FAIL_COUNT_MAX)
    private String failCount;

    @ApiModelProperty(notes = N_TOTAL_AMOUNT, example = E_TOTAL_AMOUNT)
    @Length(max = 13, message = M_TOTAL_AMOUNT_MAX)
    private String totalAmount;

    @ApiModelProperty(notes = N_SUCCESS_AMOUNT, example = E_SUCCESS_AMOUNT)
    @Length(max = 13, message = M_SUCCESS_AMOUNT_MAX)
    private String successAmount;

    @ApiModelProperty(notes = N_FAIL_AMOUNT, example = E_FAIL_AMOUNT)
    @Length(max = 13, message = M_FAIL_AMOUNT_MAX)
    private String failAmount;

    @ApiModelProperty(notes = N_BATCH_STATUS, example = E_BATCH_STATUS)
    @Length(max = 13, message = M_BATCH_STATUS_MAX)
    private String batchStatus;


}

